#ifndef  __EB_CLOCK_H__
#define  __EB_CLOCK_H__

#include <types.h>

struct clk_src {
    uint32_t enable: 1;
    uint32_t hz: 31;
    void (*set_status)(struct clk_src *src, bool status);
};


struct clk_pll {
    struct clk_src *src;
    uint32_t mult;
    void (*set_mult)(struct clk_pll *pll, uint32_t mult);
};


struct clk_div {
    
};


struct clk_mux {

};


struct clk_gate {
    bool status;
};



struct clk_mux sysclk_mux[] = {&hsi, &pll, &hse};





#endif //!__EB_CLOCK_H__